<?php
// +---------------------------------------------------------------------+
// | OneBase    | [ WE CAN DO IT JUST THINK ]                            |
// +---------------------------------------------------------------------+
// | Licensed   | http://www.apache.org/licenses/LICENSE-2.0 )           |
// +---------------------------------------------------------------------+
// | Author     | 王勇程 <laughskydragon@qq.com>                         |
// +---------------------------------------------------------------------+
// | Repository | https://gitee.com/Bigotry/OneBase                      |
// +---------------------------------------------------------------------+

namespace app\common\model;

/**
 * 前端用户模型
 */
class User extends ModelBase
{
    // 表名

    
    // 自动时间戳
    protected $autoWriteTimestamp = true;
    
    // 时间字段
    protected $createTime = 'create_time';
    protected $updateTime = 'update_time';
    
    // 字段类型转换
    protected $type = [
        'id' => 'integer',
        'vip_level' => 'integer',
        'inviter_id' => 'integer',
        'total_earnings' => 'float',
        'available_amount' => 'float',
        'total_points' => 'integer',
        'status' => 'integer',
        'vip_start_time' => 'integer',
        'vip_expire_time' => 'integer',
        'last_login_time' => 'integer',
        'create_time' => 'integer',
        'update_time' => 'integer',
    ];
    
    /**
     * 获取创建时间格式化
     */
    public function getCreateTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }
    
    /**
     * 获取更新时间格式化
     */
    public function getUpdateTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }
    
    /**
     * 获取VIP开始时间格式化
     */
    public function getVipStartTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }
    
    /**
     * 获取VIP过期时间格式化
     */
    public function getVipExpireTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }
    
    /**
     * 获取最后登录时间格式化
     */
    public function getLastLoginTimeAttr($value)
    {
        return $value ? date('Y-m-d H:i:s', $value) : '';
    }
    
    /**
     * 获取用户状态文本
     */
    public function getStatusTextAttr($value = null, $data = [])
    {
        $status = [0 => '禁用', 1 => '正常'];
        return $status[$data['status']] ?? '未知';
    }
    
    /**
     * VIP等级文本
     */
    public function getVipLevelTextAttr($value = null, $data = [])
    {
        $levels = [0 => '普通用户', 1 => '一个月VIP', 3 => '三个月VIP', 12 => '一年VIP'];
        return $levels[$data['vip_level']] ?? '未知';
    }
}